package cn.iocoder.yudao.module.trade.service.ordersafetycheckitemrelation;

import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.trade.controller.admin.ordersafetycheckitemrelation.vo.*;
import cn.iocoder.yudao.module.trade.dal.dataobject.ordersafetycheckitemrelation.OrderSafetyCheckItemRelationDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;

/**
 * 安检单与安检明细关联 Service 接口
 *
 * @author 管理员
 */
public interface OrderSafetyCheckItemRelationService {

    /**
     * 创建安检单与安检明细关联
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createOrderSafetyCheckItemRelation(@Valid OrderSafetyCheckItemRelationSaveReqVO createReqVO);

    /**
     * 更新安检单与安检明细关联
     *
     * @param updateReqVO 更新信息
     */
    void updateOrderSafetyCheckItemRelation(@Valid OrderSafetyCheckItemRelationSaveReqVO updateReqVO);

    /**
     * 删除安检单与安检明细关联
     *
     * @param id 编号
     */
    void deleteOrderSafetyCheckItemRelation(Long id);

    /**
     * 获得安检单与安检明细关联
     *
     * @param id 编号
     * @return 安检单与安检明细关联
     */
    OrderSafetyCheckItemRelationDO getOrderSafetyCheckItemRelation(Long id);

    /**
     * 获得安检单与安检明细关联分页
     *
     * @param pageReqVO 分页查询
     * @return 安检单与安检明细关联分页
     */
    PageResult<OrderSafetyCheckItemRelationDO> getOrderSafetyCheckItemRelationPage(OrderSafetyCheckItemRelationPageReqVO pageReqVO);

    /**
     * 新增多条记录
     * @param relationRespVOList
     */
    void saveCheckItemRelationBath(List<OrderSafetyCheckItemRelationRespVO> relationRespVOList);

    /**
     * 通过安检单id查询此燃气户填写安检问卷的 安检项及对应的明细
     * @param id
     * @return
     */
    List<OrderSafetyCheckItemRelationRespVO> getCheckItemRelationByCheckId(Long id);
}